<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 对象中使用Symbol类型生成的属性是无法被for in给遍历到的
        let obj = {
            [Symbol()]:'11',
            name:'22'
        }
        for(let key in obj){
            console.log(key);
        }
        // 通过调用Object.getOwnPropertySymbols()可以获取到对象身上所有的由symbol生成的属性
        console.log(Object.getOwnPropertySymbols(obj));

        // Reflect.ownKeys(obj)可以返回obj的普通属性和Symbol生成的属性，结果以数组形式返回
        console.log(Reflect.ownKeys(obj));

        // 所以我们可以通过forEach即可遍历有symbol属性的对象了
        Reflect.ownKeys(obj).forEach(item=>console.log(obj[item]));
    </script>
</body>
</html>